<?php
namespace app\index\service;
use think\facade\Log;
use app\index\model\Users;

class TokenService{

	//创建token
	public static function createToken($data){
		$str=[
			$data['id'],//用户id
			md5(md5($data['id'].config('config.custom_secret_key'))),//加密的用户id
			getRandStr(32),//随机字符串
			time()//时间戳
		];
		$token = implode('_',$str);
		$token=base64_encode($token);
		return $token;
		// return encryptDecrypt($token);
	}

	//获取token
	public static function getToken($token){

		Log::write('//====== start getToken ========//');
		cache($token, NULL);
		Log::write('//====== end getToken ========//');
		$token=base64_decode($token);
		$decryptToken=explode('_',$token);
		$where=[
			'id'=>$decryptToken[0]
		];
		$res=Users::queryUser($where);
		if(!$res){
			return false;
		}

		//创建token
		$newToken=self::createToken($res);
		// 用户信息存到缓存中
		// 设置缓存, 7200 ,120分钟后过期
		// 设置缓存, 3600 ,60分钟后过期
		// 设置缓存, 300 ,5分钟后过期
		cache($newToken,json_encode($res),3600);

		return $newToken;
	}

	//效验token
	public static function verifyToken($token){
        $exist = cache($token);
        if(!$exist){
            return false;
        }
        return true;
	}










}
